<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title>MySQL 常用命令 | jouyouyun&#39;s blog</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1">
    <meta name="description" content="大学学的数据库系统概论工作后几年没有使用都已忘了, 现在项目需要用到数据库, 但来不及细看相关书籍了, 遂将一些常用的记录下来.
常用类型
MySQL 支持多种类型, 大致可以分为三类: 数值, 日期/时间和字符串(字符)类型, 大致如下:


数值类型

整数: tinyint, smallint, mediumint, int, bigint
浮点数: float, double, decimal



日期和时间
date, time, datetime, timestamp, year


字符串类型

字符串: char, varchar
文本: tinytext, text, mediumtext, longtext
二进制字符串: tinyblob, blob, mediumblob, longblob



下面将详细给出每种类型的大小和描述.">
    <meta name="generator" content="Hugo 0.105.0">
    
    
    
    
      <meta name="robots" content="noindex, nofollow">
    

    
<link rel="stylesheet" href="/ananke/css/main.min.css" >



    
    
    
      

    

    
    
    <meta property="og:title" content="MySQL 常用命令" />
<meta property="og:description" content="大学学的数据库系统概论工作后几年没有使用都已忘了, 现在项目需要用到数据库, 但来不及细看相关书籍了, 遂将一些常用的记录下来.
常用类型
MySQL 支持多种类型, 大致可以分为三类: 数值, 日期/时间和字符串(字符)类型, 大致如下:


数值类型

整数: tinyint, smallint, mediumint, int, bigint
浮点数: float, double, decimal



日期和时间
date, time, datetime, timestamp, year


字符串类型

字符串: char, varchar
文本: tinytext, text, mediumtext, longtext
二进制字符串: tinyblob, blob, mediumblob, longblob



下面将详细给出每种类型的大小和描述." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jouyouyun.github.io/post/mysql_commands/" /><meta property="article:section" content="post" />
<meta property="article:published_time" content="2019-04-05T21:04:21+08:00" />
<meta property="article:modified_time" content="2019-04-07T00:29:18+08:00" />

<meta itemprop="name" content="MySQL 常用命令">
<meta itemprop="description" content="大学学的数据库系统概论工作后几年没有使用都已忘了, 现在项目需要用到数据库, 但来不及细看相关书籍了, 遂将一些常用的记录下来.
常用类型
MySQL 支持多种类型, 大致可以分为三类: 数值, 日期/时间和字符串(字符)类型, 大致如下:


数值类型

整数: tinyint, smallint, mediumint, int, bigint
浮点数: float, double, decimal



日期和时间
date, time, datetime, timestamp, year


字符串类型

字符串: char, varchar
文本: tinytext, text, mediumtext, longtext
二进制字符串: tinyblob, blob, mediumblob, longblob



下面将详细给出每种类型的大小和描述."><meta itemprop="datePublished" content="2019-04-05T21:04:21+08:00" />
<meta itemprop="dateModified" content="2019-04-07T00:29:18+08:00" />
<meta itemprop="wordCount" content="432">
<meta itemprop="keywords" content="sql,mysql,alter,charset,character,join," /><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="MySQL 常用命令"/>
<meta name="twitter:description" content="大学学的数据库系统概论工作后几年没有使用都已忘了, 现在项目需要用到数据库, 但来不及细看相关书籍了, 遂将一些常用的记录下来.
常用类型
MySQL 支持多种类型, 大致可以分为三类: 数值, 日期/时间和字符串(字符)类型, 大致如下:


数值类型

整数: tinyint, smallint, mediumint, int, bigint
浮点数: float, double, decimal



日期和时间
date, time, datetime, timestamp, year


字符串类型

字符串: char, varchar
文本: tinytext, text, mediumtext, longtext
二进制字符串: tinyblob, blob, mediumblob, longblob



下面将详细给出每种类型的大小和描述."/>

	
  </head>

  <body class="ma0 avenir bg-near-white">

    
   
  

  <header>
    <div class="bg-black">
      <nav class="pv3 ph3 ph4-ns" role="navigation">
  <div class="flex-l justify-between items-center center">
    <a href="/" class="f3 fw2 hover-white no-underline white-90 dib">
      
        jouyouyun&#39;s blog
      
    </a>
    <div class="flex-l items-center">
      

      
        <ul class="pl0 mr3">
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/post/" title="Archives 页">
              Archives
            </a>
          </li>
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/tags/" title="Tags 页">
              Tags
            </a>
          </li>
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/categories/" title="Categories 页">
              Categories
            </a>
          </li>
          
        </ul>
      
      
<div class="ananke-socials">
  
    <a href="https://github.com/jouyouyun" target="_blank" class="github ananke-social-link link-transition stackoverflow link dib z-999 pt3 pt0-l mr1" title="GitHub link" rel="noopener" aria-label="follow on GitHub——Opens in a new window">
      
        <span class="icon"><svg style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
  <path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1   c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14   c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5   c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7   c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3   c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7   C480,134.8,379.7,32,256,32z"/>
</svg>
</span>
      
<span class="new-window"><svg  height="8px"  style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;"/>
</svg>
</span></a>
  
</div>

    </div>
  </div>
</nav>

    </div>
  </header>



    <main class="pb7" role="main">
      
  
  <article class="flex-l flex-wrap justify-between mw8 center ph3">
    <header class="mt4 w-100">
      <aside class="instapaper_ignoref b helvetica tracked">
          
        POSTS
      </aside>
      










  <div id="sharing" class="mt3 ananke-socials">
    
  </div>


      <h1 class="f1 athelas mt3 mb1">MySQL 常用命令</h1>
      
      <p class="tracked">
         <strong>jouyouyun</strong>
      </p>
      
      
      
      <time class="f6 mv4 dib tracked" datetime="2019-04-05T21:04:21+08:00">四月 5, 2019</time>
      

      
      
    </header>
    <div class="nested-copy-line-height lh-copy serif f4 nested-links mid-gray pr4-l w-two-thirds-l"><p>大学学的数据库系统概论工作后几年没有使用都已忘了, 现在项目需要用到数据库, 但来不及细看相关书籍了, 遂将一些常用的记录下来.</p>
<h2 id="常用类型">常用类型</h2>
<p><code>MySQL</code> 支持多种类型, 大致可以分为三类: 数值, 日期/时间和字符串(字符)类型, 大致如下:</p>
<ul>
<li>
<p>数值类型</p>
<ul>
<li>整数: <code>tinyint</code>, <code>smallint</code>, <code>mediumint</code>, <code>int</code>, <code>bigint</code></li>
<li>浮点数: <code>float</code>, <code>double</code>, <code>decimal</code></li>
</ul>
</li>
<li>
<p>日期和时间</p>
<p><code>date</code>, <code>time</code>, <code>datetime</code>, <code>timestamp</code>, <code>year</code></p>
</li>
<li>
<p>字符串类型</p>
<ul>
<li>字符串: <code>char</code>, <code>varchar</code></li>
<li>文本: <code>tinytext</code>, <code>text</code>, <code>mediumtext</code>, <code>longtext</code></li>
<li>二进制字符串: <code>tinyblob</code>, <code>blob</code>, <code>mediumblob</code>, <code>longblob</code></li>
</ul>
</li>
</ul>
<p>下面将详细给出每种类型的大小和描述.</p>
<h3 id="数值类型">数值类型</h3>
<table>
<thead>
<tr>
<th>类型</th>
<th>字节</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>tinyint</td>
<td>1</td>
<td>小整数值</td>
</tr>
<tr>
<td>smallint</td>
<td>2</td>
<td>大整数值</td>
</tr>
<tr>
<td>mediumint</td>
<td>3</td>
<td>大整数值</td>
</tr>
<tr>
<td>int</td>
<td>4</td>
<td>大整数值</td>
</tr>
<tr>
<td>bigint</td>
<td>8</td>
<td>极大整数值</td>
</tr>
<tr>
<td>float</td>
<td>4</td>
<td>单精度浮点数</td>
</tr>
<tr>
<td>double</td>
<td>8</td>
<td>双精度浮点数</td>
</tr>
<tr>
<td>decimal</td>
<td>decimal(M,D)</td>
<td>定点数</td>
</tr>
</tbody>
</table>
<p><strong>DECIMAL(M,D) 高精度的数据类型, 常用来存储交易相关的数据</strong></p>
<p><strong><code>M</code> 代表总精度, <code>N</code> 代表小数点右侧的位数. 1 &lt; M &lt; 254, 0 &lt; N &lt; 60, 存储空间变长</strong></p>
<h3 id="日期和时间">日期和时间</h3>
<table>
<thead>
<tr>
<th>类型</th>
<th>字节</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>date</td>
<td>3</td>
<td>精确到年月日, 如: 2016-09-01</td>
</tr>
<tr>
<td>time</td>
<td>3</td>
<td>精确到时分秒, 如: 09:10:11</td>
</tr>
<tr>
<td>datetime</td>
<td>8</td>
<td>精确到年月日时分秒, 如: 2016-09-01 09:10:11</td>
</tr>
<tr>
<td>timedtamp</td>
<td>8</td>
<td>精确到年月日时分秒, 如: 2016-09-01 09:10:11</td>
</tr>
</tbody>
</table>
<p><strong>MySQL 5.6.4 之后, <code>datetime</code> 和 <code>timestamp</code> 支持到微秒</strong></p>
<p><strong><code>timestamp</code> 会根据时区进行转换, <code>datetime</code> 则不会</strong></p>
<p><strong><code>timestamp</code> 存储范围: <code>1970-01-01 00::00:01 ~ 2038-01-19 03:14:07</code></strong></p>
<p><strong><code>datetime</code> 的存储范围: <code>1000-01-01 00:00:00 to 9999-12-31 23:59:59</code></strong></p>
<p><strong>一般使用 <code>timestamp</code> 国际化</strong></p>
<p><strong>如存时间戳使用数字类型 <code>BIGINT</code></strong></p>
<h3 id="字符串类型">字符串类型</h3>
<table>
<thead>
<tr>
<th>类型</th>
<th>大小</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>char</td>
<td>最大为255字符</td>
<td>存储定长, 容易造成空间的浪费</td>
</tr>
<tr>
<td>varchar</td>
<td>可以超过255个字符</td>
<td>存储变长，节省存储空间</td>
</tr>
<tr>
<td>text</td>
<td>总大小为65535字节，约为64KB</td>
<td>长文本数据</td>
</tr>
</tbody>
</table>
<hr>
<p><strong>根据 <code>MySQL</code> 版本的不同, 类型的大小范围可能会有改变.</strong></p>
<h2 id="常用命令">常用命令</h2>
<h3 id="数据库">数据库</h3>
<ul>
<li>
<p>创建</p>
<p><code>CREATE DATABASE &lt;name&gt;;</code></p>
</li>
<li>
<p>删除</p>
<p><code>DROP DATABASE &lt;name&gt;;</code></p>
</li>
<li>
<p>列出数据库</p>
<p><code>show databases;</code></p>
</li>
<li>
<p>使用数据库</p>
<p><code>use &lt;name&gt;;</code></p>
</li>
<li>
<p>修改 <code>CHARSET</code></p>
<p><code>ALTER DATABASE &lt;name&gt; DEFAULT CHARACTER SET &lt;char name&gt;;</code></p>
</li>
<li>
<p>显示创建类型</p>
<p><code>show create database &lt;name&gt;</code></p>
</li>
</ul>
<h3 id="表">表</h3>
<ul>
<li>
<p>创建</p>
<p><code>CREATE TABLE &lt;name&gt;(`id` INT(11) AUTO_INCREMENT),`name` VARCHAR(64) NOT NULL,...)CHARACTER SET=utf8mb4;</code></p>
</li>
<li>
<p>删除</p>
<p><code>DROP TABLE &lt;name&gt;;</code></p>
</li>
<li>
<p>插入</p>
<p><code>INSERT INTO &lt;name&gt;(filed1, filed2,...) VALUES (value1, value2,...),(value3,value4,...),...;</code></p>
<p>可同时插入多条记录</p>
</li>
<li>
<p>查询</p>
<p><code>SELECT filed1,filed2,... FROM &lt;name&gt; WHERE &lt;condition&gt;</code></p>
<p>多表查询: <code>SELECT t1.id,t1.name,t2.name AS desc FROM t1,t2 WHERE t1.t2_id=t2.id</code>, 这将会返回两个表的交集</p>
<p>多表查询也可使用联合查询, 联合查询详情见后文.</p>
<p>使用 <code>LIKE</code> 可以模糊查询, <code>%</code> 来表示任意字符, 如: <code>SELECT * FROM &lt;name&gt; WHERE name LIKE '%oy%';</code></p>
</li>
<li>
<p>显示表</p>
<ul>
<li>
<p>显示表字段</p>
<p><code>desc &lt;name&gt;</code></p>
</li>
<li>
<p>显示表创建字段</p>
<p><code>show create table &lt;name&gt;</code></p>
</li>
</ul>
</li>
<li>
<p>列出表</p>
<p><code>show tables;</code></p>
</li>
<li>
<p>修改值</p>
<p><code>UPDATE &lt;name&gt; SET &lt;filed1&gt;=value1 WHERE &lt;condition&gt;</code></p>
</li>
<li>
<p>添加列</p>
<p><code>ALTER TABLE &lt;name&gt; ADD `filed1` &lt;type&gt;</code></p>
</li>
<li>
<p>删除列</p>
<p><code>ALTER TABLE &lt;name&gt; DROP filed1</code></p>
</li>
<li>
<p>修改列类型</p>
<ul>
<li><code>ALTER TABLE &lt;name&gt; MODIFY filed1 &lt;type&gt;</code></li>
<li><code>ALTER TABLE &lt;name&gt; CHANGE `filed1` `filed1` &lt;type&gt;</code> 可以修改列名</li>
</ul>
</li>
<li>
<p>修改 <code>CHARSET</code></p>
<ul>
<li>
<p>修改表的默认 <code>CHARSET</code></p>
<p><code>ALTER TABLE &lt;name&gt; DEFAULT CHARACTER SET utf8mb4</code></p>
</li>
<li>
<p>修改表及所以列的字符</p>
<p><code>ALTER TABLE &lt;name&gt; CONVERT TO CHARACTER SET utf8mb4</code></p>
</li>
<li>
<p>修改列的字符集</p>
<p><code>ALTER TABLE &lt;name&gt; CHANGE filed1 CHARACTER SET utf8mb4</code></p>
</li>
</ul>
</li>
</ul>
<h3 id="备份-恢复">备份/恢复</h3>
<ul>
<li>
<p>备份</p>
<p><code>mysqldump -h&lt;address&gt; --port &lt;port&gt; -u&lt;username&gt; -p&lt;password&gt; &lt;datebase name&gt; &lt;table name&gt; &gt; bak.sql</code></p>
<p>其中 <code>table name</code> 可选</p>
</li>
<li>
<p>恢复</p>
<p><code>mysql -h&lt;address&gt; --port &lt;port&gt; -u&lt;username&gt; -p&lt;password&gt; &lt;datebase name&gt; &lt; bak.sql</code></p>
<p>导入数据到指定的数据库中</p>
</li>
</ul>
<h2 id="联合查询">联合查询</h2>
<p>假设存在表: <code>user(id, name, email)</code> 和 <code>user_profile(id,uid,avatar)</code>, 几种联合方式如下:</p>
<ul>
<li>
<p>左联</p>
<p><code>LEFT JOIN</code> 或 <code>LEFT OUTER JOIN</code> 返回的结果包含左表中的所有行, 若左行在右行中匹配, 则在对应的右表中显示为 <code>NULL</code></p>
<p><code>SELECT * FROM user LEFT JOIN user_profile ON user.id=user_profile.uid</code></p>
</li>
<li>
<p>右联</p>
<p><code>RIGHT JOIN</code> 或 <code>RIGHT OUTER JOIN</code> 返回的结果包含右表中的所有行, 若左行在右行中匹配, 则在对应的左表中显示为 <code>NULL</code></p>
</li>
<li>
<p>全联</p>
<p><code>FULL JOIN</code> 或 <code>FULL OUTER JOIN</code> 返回左右两表中的所有行, 如果右表中某行在左表中没有匹配, 则结果中对应行右表的部分全部为 <code>NULL</code>;
如果左表中某行在右表中没有匹配, 则结果中对应行左表的部分全部为空 <code>NULL</code>.</p>
</li>
<li>
<p>内联</p>
<p><code>inner join</code> 是比较运算符, 只返回符合条件的行, 如:</p>
<p><code>SELECT * FROM user INNER JOIN user_profile ON user.id=user_profile.uid</code></p>
<p>等同于 <code>SELECT * FROM user,user_profile WHERE user.id=user_profile.uid</code></p>
</li>
</ul><ul class="pa0">
  
   <li class="list di">
     <a href="/tags/sql" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">sql</a>
   </li>
  
   <li class="list di">
     <a href="/tags/mysql" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">mysql</a>
   </li>
  
   <li class="list di">
     <a href="/tags/alter" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">alter</a>
   </li>
  
   <li class="list di">
     <a href="/tags/charset" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">charset</a>
   </li>
  
   <li class="list di">
     <a href="/tags/character" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">character</a>
   </li>
  
   <li class="list di">
     <a href="/tags/join" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif">join</a>
   </li>
  
</ul>
<div class="mt6 instapaper_ignoref">
      
      
      </div>
    </div>

    <aside class="w-30-l mt6-l">




</aside>

  </article>

    </main>
    <footer class="bg-black bottom-0 w-100 pa3" role="contentinfo">
  <div class="flex justify-between">
  <a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="https://jouyouyun.github.io" >
    &copy;  jouyouyun 2023 
  </a>
    <div>
<div class="ananke-socials">
  
    <a href="https://github.com/jouyouyun" target="_blank" class="github ananke-social-link link-transition stackoverflow link dib z-999 pt3 pt0-l mr1" title="GitHub link" rel="noopener" aria-label="follow on GitHub——Opens in a new window">
      
        <span class="icon"><svg style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
  <path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1   c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14   c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5   c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7   c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3   c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7   C480,134.8,379.7,32,256,32z"/>
</svg>
</span>
      
<span class="new-window"><svg  height="8px"  style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;"/>
</svg>
</span></a>
  
</div>
</div>
  </div>
</footer>

  </body>
</html>
